strslnvar_j ~ 1 stress_hiv@sg1 depmean_cgm@sg2 depvar_cgm@sg3 stress_hiv*depmean_cgm@sg4 stress_hiv*depvar_cgm@sg5;    # person-level log variances
stresssoc ~ 1@strsmean_j dep_cwc*depslps_j@1;   # set intercept equal to person-level latent variable
var(stresssoc) ~ 1@strslnvar_j dep_cwc;   # set intercept equal to person-level latent variable
strsmean_j ~~ strslnvar_j;   # correlation between person means and within-person variation
random.effect.correlations:
depslpl_j depslps_j strlmean_j strllnvar_j strsmean_j strslnvar_j ~~ depslpl_j depslps_j strlmean_j strllnvar_j strsmean_j strslnvar_j;
depression.model:
depmean_j ~ 1@dmean_mu;   # person-level means predicted by stressors
deplnvar_j ~ 1@dvar_mu;    # person-level log variances predicted by stressors
depress ~ 1@depmean_j;   # set intercept equal to person-level latent variable
var(depress) ~ 1@deplnvar_j;   # set intercept equal to person-level latent variable
depmean_j ~~ deplnvar_j;   # correlation between person means and within-person variation
predictor.model:
stress_hiv depmean_j deplnvar_j ~~ stress_hiv depmean_j deplnvar_j;
DEBUG: logvar_truncate = ', minlogvar),
parameters = c(
'rsq_slpl = depslpl_j.totalvar / stresslife.totalvar;
rsq_slps = depslps_j.totalvar / stresssoc.totalvar;',
paste0(paste0('lb', fix2zero, ' = 0; '), paste0('lg', fix2zero, ' = 0; '),
paste0('sb', fix2zero, ' = 0; '), paste0('sg', fix2zero, ' = 0; '))),
test = c(
paste0('TEST: lb', par2test, ' = 0; '), paste0('TEST: sb', par2test, ' = 0; '),
paste0('TEST: lg', par2test, ' = 0; '), paste0('TEST: sg', par2test, ' = 0; ')),
seed = 90291,
burn = mcmc_burn,
iter = mcmc_iter,
print_output = 'all')
}
# run models
minlogvar <- -3
Mod1 <- runBlimp(dat = ATN, clusterid = 'person', mcmc_burn = 10000, mcmc_iter = 20000, minlogvar = minlogvar, fix2zero = c(1,3,4,5), par2test = c(2))
runBlimp <- function(dat,clusterid,mcmc_burn,mcmc_iter,minlogvar,fix2zero,par2test){
rblimp(
data = dat,
clusterid = clusterid,
latent = 'person = depslpl_j depslps_j depmean_j deplnvar_j strlmean_j strllnvar_j strsmean_j strslnvar_j',
center = 'grandmean = stress_hiv',
model = paste0(
'define.calculations:
depmean_cgm = depmean_j - dmean_mu;
depvar_cgm = deplnvar_j - dvar_mu;
dep_cwc = depress - depmean_j;
random.slope.models:
{ depslpl_j depslps_j } ~ 1;
lifestress.model:
strlmean_j ~ 1 stress_hiv@lb1 depmean_cgm@lb2 depvar_cgm@lb3 stress_hiv*depmean_cgm@lb4 stress_hiv*depvar_cgm@lb5;   # person-level means
strllnvar_j ~ 1 stress_hiv@lg1 depmean_cgm@lg2 depvar_cgm@lg3 stress_hiv*depmean_cgm@lg4 stress_hiv*depvar_cgm@lg5;    # person-level log variances
stresslife ~ 1@strlmean_j dep_cwc*depslpl_j@1;   # set intercept equal to person-level latent variable
var(stresslife) ~ 1@strllnvar_j dep_cwc;   # set intercept equal to person-level latent variable
strlmean_j ~~ strllnvar_j;   # correlation between person means and within-person variation
socialstress.model:
strsmean_j ~ 1 stress_hiv@sb1 depmean_cgm@sb2 depvar_cgm@sb3 stress_hiv*depmean_cgm@sb4 stress_hiv*depvar_cgm@sb5;   # person-level means
strslnvar_j ~ 1 stress_hiv@sg1 depmean_cgm@sg2 depvar_cgm@sg3 stress_hiv*depmean_cgm@sg4 stress_hiv*depvar_cgm@sg5;    # person-level log variances
stresssoc ~ 1@strsmean_j dep_cwc*depslps_j@1;   # set intercept equal to person-level latent variable
var(stresssoc) ~ 1@strslnvar_j dep_cwc;   # set intercept equal to person-level latent variable
strsmean_j ~~ strslnvar_j;   # correlation between person means and within-person variation
random.effect.correlations:
depslpl_j depslps_j strlmean_j strllnvar_j strsmean_j strslnvar_j ~~ depslpl_j depslps_j strlmean_j strllnvar_j strsmean_j strslnvar_j;
depression.model:
depmean_j ~ 1@dmean_mu;   # person-level means predicted by stressors
deplnvar_j ~ 1@dvar_mu;    # person-level log variances predicted by stressors
depress ~ 1@depmean_j;   # set intercept equal to person-level latent variable
var(depress) ~ 1@deplnvar_j;   # set intercept equal to person-level latent variable
depmean_j ~~ deplnvar_j;   # correlation between person means and within-person variation
predictor.model:
stress_hiv depmean_j deplnvar_j ~~ stress_hiv depmean_j deplnvar_j;
DEBUG: logvar_truncate = ', minlogvar),
parameters = c(
'rsq_slpl = depslpl_j.totalvar / stresslife.totalvar;
rsq_slps = depslps_j.totalvar / stresssoc.totalvar;',
paste0(paste0('lb', fix2zero, ' = 0; '), paste0('lg', fix2zero, ' = 0; '),
paste0('sb', fix2zero, ' = 0; '), paste0('sg', fix2zero, ' = 0; '))),
test = c(
paste0('TEST: lb', par2test, ' = 0; '), paste0('TEST: sb', par2test, ' = 0; '),
paste0('TEST: lg', par2test, ' = 0; '), paste0('TEST: sg', par2test, ' = 0; ')),
seed = 90291,
burn = mcmc_burn,
iter = mcmc_iter,
print_output = 'all')
}
# run models
minlogvar <- -3
Mod1 <- runBlimp(dat = ATN, clusterid = 'person', mcmc_burn = 10000, mcmc_iter = 20000, minlogvar = minlogvar, fix2zero = c(1,3,4,5), par2test = c(2))
c(
paste0('TEST: lb', par2test, ' = 0; '), paste0('TEST: sb', par2test, ' = 0; '))
runBlimp <- function(dat,clusterid,mcmc_burn,mcmc_iter,minlogvar,fix2zero,par2test){
rblimp(
data = dat,
clusterid = clusterid,
latent = 'person = depslpl_j depslps_j depmean_j deplnvar_j strlmean_j strllnvar_j strsmean_j strslnvar_j',
center = 'grandmean = stress_hiv',
model = paste0(
'define.calculations:
depmean_cgm = depmean_j - dmean_mu;
depvar_cgm = deplnvar_j - dvar_mu;
dep_cwc = depress - depmean_j;
random.slope.models:
{ depslpl_j depslps_j } ~ 1;
lifestress.model:
strlmean_j ~ 1 stress_hiv@lb1 depmean_cgm@lb2 depvar_cgm@lb3 stress_hiv*depmean_cgm@lb4 stress_hiv*depvar_cgm@lb5;   # person-level means
strllnvar_j ~ 1 stress_hiv@lg1 depmean_cgm@lg2 depvar_cgm@lg3 stress_hiv*depmean_cgm@lg4 stress_hiv*depvar_cgm@lg5;    # person-level log variances
stresslife ~ 1@strlmean_j dep_cwc*depslpl_j@1;   # set intercept equal to person-level latent variable
var(stresslife) ~ 1@strllnvar_j dep_cwc;   # set intercept equal to person-level latent variable
strlmean_j ~~ strllnvar_j;   # correlation between person means and within-person variation
socialstress.model:
strsmean_j ~ 1 stress_hiv@sb1 depmean_cgm@sb2 depvar_cgm@sb3 stress_hiv*depmean_cgm@sb4 stress_hiv*depvar_cgm@sb5;   # person-level means
strslnvar_j ~ 1 stress_hiv@sg1 depmean_cgm@sg2 depvar_cgm@sg3 stress_hiv*depmean_cgm@sg4 stress_hiv*depvar_cgm@sg5;    # person-level log variances
stresssoc ~ 1@strsmean_j dep_cwc*depslps_j@1;   # set intercept equal to person-level latent variable
var(stresssoc) ~ 1@strslnvar_j dep_cwc;   # set intercept equal to person-level latent variable
strsmean_j ~~ strslnvar_j;   # correlation between person means and within-person variation
random.effect.correlations:
depslpl_j depslps_j strlmean_j strllnvar_j strsmean_j strslnvar_j ~~ depslpl_j depslps_j strlmean_j strllnvar_j strsmean_j strslnvar_j;
depression.model:
depmean_j ~ 1@dmean_mu;   # person-level means predicted by stressors
deplnvar_j ~ 1@dvar_mu;    # person-level log variances predicted by stressors
depress ~ 1@depmean_j;   # set intercept equal to person-level latent variable
var(depress) ~ 1@deplnvar_j;   # set intercept equal to person-level latent variable
depmean_j ~~ deplnvar_j;   # correlation between person means and within-person variation
predictor.model:
stress_hiv depmean_j deplnvar_j ~~ stress_hiv depmean_j deplnvar_j;
DEBUG: logvar_truncate = ', minlogvar),
parameters = c(
'rsq_slpl = depslpl_j.totalvar / stresslife.totalvar;
rsq_slps = depslps_j.totalvar / stresssoc.totalvar;',
paste0(paste0('lb', fix2zero, ' = 0; '), paste0('lg', fix2zero, ' = 0; '),
paste0('sb', fix2zero, ' = 0; '), paste0('sg', fix2zero, ' = 0; '))),
test = c(
paste0('TEST: lb', par2test, ' = 0; '), paste0('TEST: sb', par2test, ' = 0; ')),
# paste0('TEST: lg', par2test, ' = 0; '), paste0('TEST: sg', par2test, ' = 0; ')),
seed = 90291,
burn = mcmc_burn,
iter = mcmc_iter,
print_output = 'all')
}
# run models
minlogvar <- -3
Mod1 <- runBlimp(dat = ATN, clusterid = 'person', mcmc_burn = 10000, mcmc_iter = 20000, minlogvar = minlogvar, fix2zero = c(1,3,4,5), par2test = c(2))
runBlimp <- function(dat,clusterid,mcmc_burn,mcmc_iter,minlogvar,fix2zero,par2test){
rblimp(
data = dat,
clusterid = clusterid,
latent = 'person = depslpl_j depslps_j depmean_j deplnvar_j strlmean_j strllnvar_j strsmean_j strslnvar_j',
center = 'grandmean = stress_hiv',
model = paste0(
'define.calculations:
depmean_cgm = depmean_j - dmean_mu;
depvar_cgm = deplnvar_j - dvar_mu;
dep_cwc = depress - depmean_j;
random.slope.models:
{ depslpl_j depslps_j } ~ 1;
lifestress.model:
strlmean_j ~ 1 stress_hiv@lb1 depmean_cgm@lb2 depvar_cgm@lb3 stress_hiv*depmean_cgm@lb4 stress_hiv*depvar_cgm@lb5;   # person-level means
strllnvar_j ~ 1 stress_hiv@lg1 depmean_cgm@lg2 depvar_cgm@lg3 stress_hiv*depmean_cgm@lg4 stress_hiv*depvar_cgm@lg5;    # person-level log variances
stresslife ~ 1@strlmean_j dep_cwc*depslpl_j@1;   # set intercept equal to person-level latent variable
var(stresslife) ~ 1@strllnvar_j dep_cwc;   # set intercept equal to person-level latent variable
strlmean_j ~~ strllnvar_j;   # correlation between person means and within-person variation
socialstress.model:
strsmean_j ~ 1 stress_hiv@sb1 depmean_cgm@sb2 depvar_cgm@sb3 stress_hiv*depmean_cgm@sb4 stress_hiv*depvar_cgm@sb5;   # person-level means
strslnvar_j ~ 1 stress_hiv@sg1 depmean_cgm@sg2 depvar_cgm@sg3 stress_hiv*depmean_cgm@sg4 stress_hiv*depvar_cgm@sg5;    # person-level log variances
stresssoc ~ 1@strsmean_j dep_cwc*depslps_j@1;   # set intercept equal to person-level latent variable
var(stresssoc) ~ 1@strslnvar_j dep_cwc;   # set intercept equal to person-level latent variable
strsmean_j ~~ strslnvar_j;   # correlation between person means and within-person variation
random.effect.correlations:
depslpl_j depslps_j strlmean_j strllnvar_j strsmean_j strslnvar_j ~~ depslpl_j depslps_j strlmean_j strllnvar_j strsmean_j strslnvar_j;
depression.model:
depmean_j ~ 1@dmean_mu;   # person-level means predicted by stressors
deplnvar_j ~ 1@dvar_mu;    # person-level log variances predicted by stressors
depress ~ 1@depmean_j;   # set intercept equal to person-level latent variable
var(depress) ~ 1@deplnvar_j;   # set intercept equal to person-level latent variable
depmean_j ~~ deplnvar_j;   # correlation between person means and within-person variation
predictor.model:
stress_hiv depmean_j deplnvar_j ~~ stress_hiv depmean_j deplnvar_j;
DEBUG: logvar_truncate = ', minlogvar),
parameters = c(
'rsq_slpl = depslpl_j.totalvar / stresslife.totalvar;
rsq_slps = depslps_j.totalvar / stresssoc.totalvar;',
paste0(paste0('lb', fix2zero, ' = 0; '), paste0('lg', fix2zero, ' = 0; '),
paste0('sb', fix2zero, ' = 0; '), paste0('sg', fix2zero, ' = 0; '))),
# test = c(
#   paste0('TEST: lb', par2test, ' = 0; '), paste0('TEST: sb', par2test, ' = 0; ')),
# paste0('TEST: lg', par2test, ' = 0; '), paste0('TEST: sg', par2test, ' = 0; ')),
seed = 90291,
burn = mcmc_burn,
iter = mcmc_iter,
print_output = 'all')
}
# run models
minlogvar <- -3
Mod1 <- runBlimp(dat = ATN, clusterid = 'person', mcmc_burn = 10000, mcmc_iter = 20000, minlogvar = minlogvar, fix2zero = c(1,3,4,5), par2test = c(2))
paste0('TEST: lb', par2test, ' = 0; ')
runBlimp <- function(dat,clusterid,mcmc_burn,mcmc_iter,minlogvar,fix2zero,par2test){
rblimp(
data = dat,
clusterid = clusterid,
latent = 'person = depslpl_j depslps_j depmean_j deplnvar_j strlmean_j strllnvar_j strsmean_j strslnvar_j',
center = 'grandmean = stress_hiv',
model = paste0(
'define.calculations:
depmean_cgm = depmean_j - dmean_mu;
depvar_cgm = deplnvar_j - dvar_mu;
dep_cwc = depress - depmean_j;
random.slope.models:
{ depslpl_j depslps_j } ~ 1;
lifestress.model:
strlmean_j ~ 1 stress_hiv@lb1 depmean_cgm@lb2 depvar_cgm@lb3 stress_hiv*depmean_cgm@lb4 stress_hiv*depvar_cgm@lb5;   # person-level means
strllnvar_j ~ 1 stress_hiv@lg1 depmean_cgm@lg2 depvar_cgm@lg3 stress_hiv*depmean_cgm@lg4 stress_hiv*depvar_cgm@lg5;    # person-level log variances
stresslife ~ 1@strlmean_j dep_cwc*depslpl_j@1;   # set intercept equal to person-level latent variable
var(stresslife) ~ 1@strllnvar_j dep_cwc;   # set intercept equal to person-level latent variable
strlmean_j ~~ strllnvar_j;   # correlation between person means and within-person variation
socialstress.model:
strsmean_j ~ 1 stress_hiv@sb1 depmean_cgm@sb2 depvar_cgm@sb3 stress_hiv*depmean_cgm@sb4 stress_hiv*depvar_cgm@sb5;   # person-level means
strslnvar_j ~ 1 stress_hiv@sg1 depmean_cgm@sg2 depvar_cgm@sg3 stress_hiv*depmean_cgm@sg4 stress_hiv*depvar_cgm@sg5;    # person-level log variances
stresssoc ~ 1@strsmean_j dep_cwc*depslps_j@1;   # set intercept equal to person-level latent variable
var(stresssoc) ~ 1@strslnvar_j dep_cwc;   # set intercept equal to person-level latent variable
strsmean_j ~~ strslnvar_j;   # correlation between person means and within-person variation
random.effect.correlations:
depslpl_j depslps_j strlmean_j strllnvar_j strsmean_j strslnvar_j ~~ depslpl_j depslps_j strlmean_j strllnvar_j strsmean_j strslnvar_j;
depression.model:
depmean_j ~ 1@dmean_mu;   # person-level means predicted by stressors
deplnvar_j ~ 1@dvar_mu;    # person-level log variances predicted by stressors
depress ~ 1@depmean_j;   # set intercept equal to person-level latent variable
var(depress) ~ 1@deplnvar_j;   # set intercept equal to person-level latent variable
depmean_j ~~ deplnvar_j;   # correlation between person means and within-person variation
predictor.model:
stress_hiv depmean_j deplnvar_j ~~ stress_hiv depmean_j deplnvar_j;
DEBUG: logvar_truncate = ', minlogvar),
parameters = c(
'rsq_slpl = depslpl_j.totalvar / stresslife.totalvar;
rsq_slps = depslps_j.totalvar / stresssoc.totalvar;',
paste0(paste0('lb', fix2zero, ' = 0; '), paste0('lg', fix2zero, ' = 0; '),
paste0('sb', fix2zero, ' = 0; '), paste0('sg', fix2zero, ' = 0; '))),
test = paste0('TEST: lb', par2test, ' = 0; '),
# test = c(
#   paste0('TEST: lb', par2test, ' = 0; '), paste0('TEST: sb', par2test, ' = 0; ')),
# paste0('TEST: lg', par2test, ' = 0; '), paste0('TEST: sg', par2test, ' = 0; ')),
seed = 90291,
burn = mcmc_burn,
iter = mcmc_iter,
print_output = 'all')
}
# run models
minlogvar <- -3
Mod1 <- runBlimp(dat = ATN, clusterid = 'person', mcmc_burn = 10000, mcmc_iter = 20000, minlogvar = minlogvar, fix2zero = c(1,3,4,5), par2test = c(2))
runBlimp <- function(dat,clusterid,mcmc_burn,mcmc_iter,minlogvar,fix2zero,par2test){
rblimp(
data = dat,
clusterid = clusterid,
latent = 'person = depslpl_j depslps_j depmean_j deplnvar_j strlmean_j strllnvar_j strsmean_j strslnvar_j',
center = 'grandmean = stress_hiv',
model = paste0(
'define.calculations:
depmean_cgm = depmean_j - dmean_mu;
depvar_cgm = deplnvar_j - dvar_mu;
dep_cwc = depress - depmean_j;
random.slope.models:
{ depslpl_j depslps_j } ~ 1;
lifestress.model:
strlmean_j ~ 1 stress_hiv@lb1 depmean_cgm@lb2 depvar_cgm@lb3 stress_hiv*depmean_cgm@lb4 stress_hiv*depvar_cgm@lb5;   # person-level means
strllnvar_j ~ 1 stress_hiv@lg1 depmean_cgm@lg2 depvar_cgm@lg3 stress_hiv*depmean_cgm@lg4 stress_hiv*depvar_cgm@lg5;    # person-level log variances
stresslife ~ 1@strlmean_j dep_cwc*depslpl_j@1;   # set intercept equal to person-level latent variable
var(stresslife) ~ 1@strllnvar_j dep_cwc;   # set intercept equal to person-level latent variable
strlmean_j ~~ strllnvar_j;   # correlation between person means and within-person variation
socialstress.model:
strsmean_j ~ 1 stress_hiv@sb1 depmean_cgm@sb2 depvar_cgm@sb3 stress_hiv*depmean_cgm@sb4 stress_hiv*depvar_cgm@sb5;   # person-level means
strslnvar_j ~ 1 stress_hiv@sg1 depmean_cgm@sg2 depvar_cgm@sg3 stress_hiv*depmean_cgm@sg4 stress_hiv*depvar_cgm@sg5;    # person-level log variances
stresssoc ~ 1@strsmean_j dep_cwc*depslps_j@1;   # set intercept equal to person-level latent variable
var(stresssoc) ~ 1@strslnvar_j dep_cwc;   # set intercept equal to person-level latent variable
strsmean_j ~~ strslnvar_j;   # correlation between person means and within-person variation
random.effect.correlations:
depslpl_j depslps_j strlmean_j strllnvar_j strsmean_j strslnvar_j ~~ depslpl_j depslps_j strlmean_j strllnvar_j strsmean_j strslnvar_j;
depression.model:
depmean_j ~ 1@dmean_mu;   # person-level means predicted by stressors
deplnvar_j ~ 1@dvar_mu;    # person-level log variances predicted by stressors
depress ~ 1@depmean_j;   # set intercept equal to person-level latent variable
var(depress) ~ 1@deplnvar_j;   # set intercept equal to person-level latent variable
depmean_j ~~ deplnvar_j;   # correlation between person means and within-person variation
predictor.model:
stress_hiv depmean_j deplnvar_j ~~ stress_hiv depmean_j deplnvar_j;
DEBUG: logvar_truncate = ', minlogvar),
parameters = c(
'rsq_slpl = depslpl_j.totalvar / stresslife.totalvar;
rsq_slps = depslps_j.totalvar / stresssoc.totalvar;',
paste0(paste0('lb', fix2zero, ' = 0; '), paste0('lg', fix2zero, ' = 0; '),
paste0('sb', fix2zero, ' = 0; '), paste0('sg', fix2zero, ' = 0; '))),
waldtest = paste0('TEST: lb', par2test, ' = 0; '),
# test = c(
#   paste0('TEST: lb', par2test, ' = 0; '), paste0('TEST: sb', par2test, ' = 0; ')),
# paste0('TEST: lg', par2test, ' = 0; '), paste0('TEST: sg', par2test, ' = 0; ')),
seed = 90291,
burn = mcmc_burn,
iter = mcmc_iter,
print_output = 'all')
}
# run models
minlogvar <- -3
Mod1 <- runBlimp(dat = ATN, clusterid = 'person', mcmc_burn = 10000, mcmc_iter = 20000, minlogvar = minlogvar, fix2zero = c(1,3,4,5), par2test = c(2))
runBlimp <- function(dat,clusterid,mcmc_burn,mcmc_iter,minlogvar,fix2zero,par2test){
rblimp(
data = dat,
clusterid = clusterid,
latent = 'person = depslpl_j depslps_j depmean_j deplnvar_j strlmean_j strllnvar_j strsmean_j strslnvar_j',
center = 'grandmean = stress_hiv',
model = paste0(
'define.calculations:
depmean_cgm = depmean_j - dmean_mu;
depvar_cgm = deplnvar_j - dvar_mu;
dep_cwc = depress - depmean_j;
random.slope.models:
{ depslpl_j depslps_j } ~ 1;
lifestress.model:
strlmean_j ~ 1 stress_hiv@lb1 depmean_cgm@lb2 depvar_cgm@lb3 stress_hiv*depmean_cgm@lb4 stress_hiv*depvar_cgm@lb5;   # person-level means
strllnvar_j ~ 1 stress_hiv@lg1 depmean_cgm@lg2 depvar_cgm@lg3 stress_hiv*depmean_cgm@lg4 stress_hiv*depvar_cgm@lg5;    # person-level log variances
stresslife ~ 1@strlmean_j dep_cwc*depslpl_j@1;   # set intercept equal to person-level latent variable
var(stresslife) ~ 1@strllnvar_j dep_cwc;   # set intercept equal to person-level latent variable
strlmean_j ~~ strllnvar_j;   # correlation between person means and within-person variation
socialstress.model:
strsmean_j ~ 1 stress_hiv@sb1 depmean_cgm@sb2 depvar_cgm@sb3 stress_hiv*depmean_cgm@sb4 stress_hiv*depvar_cgm@sb5;   # person-level means
strslnvar_j ~ 1 stress_hiv@sg1 depmean_cgm@sg2 depvar_cgm@sg3 stress_hiv*depmean_cgm@sg4 stress_hiv*depvar_cgm@sg5;    # person-level log variances
stresssoc ~ 1@strsmean_j dep_cwc*depslps_j@1;   # set intercept equal to person-level latent variable
var(stresssoc) ~ 1@strslnvar_j dep_cwc;   # set intercept equal to person-level latent variable
strsmean_j ~~ strslnvar_j;   # correlation between person means and within-person variation
random.effect.correlations:
depslpl_j depslps_j strlmean_j strllnvar_j strsmean_j strslnvar_j ~~ depslpl_j depslps_j strlmean_j strllnvar_j strsmean_j strslnvar_j;
depression.model:
depmean_j ~ 1@dmean_mu;   # person-level means predicted by stressors
deplnvar_j ~ 1@dvar_mu;    # person-level log variances predicted by stressors
depress ~ 1@depmean_j;   # set intercept equal to person-level latent variable
var(depress) ~ 1@deplnvar_j;   # set intercept equal to person-level latent variable
depmean_j ~~ deplnvar_j;   # correlation between person means and within-person variation
predictor.model:
stress_hiv depmean_j deplnvar_j ~~ stress_hiv depmean_j deplnvar_j;
DEBUG: logvar_truncate = ', minlogvar),
parameters = c(
'rsq_slpl = depslpl_j.totalvar / stresslife.totalvar;
rsq_slps = depslps_j.totalvar / stresssoc.totalvar;',
paste0(paste0('lb', fix2zero, ' = 0; '), paste0('lg', fix2zero, ' = 0; '),
paste0('sb', fix2zero, ' = 0; '), paste0('sg', fix2zero, ' = 0; '))),
waldtest = paste0('lb', par2test, ' = 0; '),
# test = c(
#   paste0('TEST: lb', par2test, ' = 0; '), paste0('TEST: sb', par2test, ' = 0; ')),
# paste0('TEST: lg', par2test, ' = 0; '), paste0('TEST: sg', par2test, ' = 0; ')),
seed = 90291,
burn = mcmc_burn,
iter = mcmc_iter,
print_output = 'all')
}
minlogvar <- -3
Mod1 <- runBlimp(dat = ATN, clusterid = 'person', mcmc_burn = 10000, mcmc_iter = 20000, minlogvar = minlogvar, fix2zero = c(1,3,4,5), par2test = c(2))
# empty random variance model
runBlimp <- function(dat,clusterid,mcmc_burn,mcmc_iter,minlogvar,fix2zero,par2test){
rblimp(
data = dat,
clusterid = clusterid,
latent = 'person = depslpl_j depslps_j depmean_j deplnvar_j strlmean_j strllnvar_j strsmean_j strslnvar_j',
center = 'grandmean = stress_hiv',
model = paste0(
'define.calculations:
depmean_cgm = depmean_j - dmean_mu;
depvar_cgm = deplnvar_j - dvar_mu;
dep_cwc = depress - depmean_j;
random.slope.models:
{ depslpl_j depslps_j } ~ 1;
lifestress.model:
strlmean_j ~ 1 stress_hiv@lb1 depmean_cgm@lb2 depvar_cgm@lb3 stress_hiv*depmean_cgm@lb4 stress_hiv*depvar_cgm@lb5;   # person-level means
strllnvar_j ~ 1 stress_hiv@lg1 depmean_cgm@lg2 depvar_cgm@lg3 stress_hiv*depmean_cgm@lg4 stress_hiv*depvar_cgm@lg5;    # person-level log variances
stresslife ~ 1@strlmean_j dep_cwc*depslpl_j@1;   # set intercept equal to person-level latent variable
var(stresslife) ~ 1@strllnvar_j dep_cwc;   # set intercept equal to person-level latent variable
strlmean_j ~~ strllnvar_j;   # correlation between person means and within-person variation
socialstress.model:
strsmean_j ~ 1 stress_hiv@sb1 depmean_cgm@sb2 depvar_cgm@sb3 stress_hiv*depmean_cgm@sb4 stress_hiv*depvar_cgm@sb5;   # person-level means
strslnvar_j ~ 1 stress_hiv@sg1 depmean_cgm@sg2 depvar_cgm@sg3 stress_hiv*depmean_cgm@sg4 stress_hiv*depvar_cgm@sg5;    # person-level log variances
stresssoc ~ 1@strsmean_j dep_cwc*depslps_j@1;   # set intercept equal to person-level latent variable
var(stresssoc) ~ 1@strslnvar_j dep_cwc;   # set intercept equal to person-level latent variable
strsmean_j ~~ strslnvar_j;   # correlation between person means and within-person variation
random.effect.correlations:
depslpl_j depslps_j strlmean_j strllnvar_j strsmean_j strslnvar_j ~~ depslpl_j depslps_j strlmean_j strllnvar_j strsmean_j strslnvar_j;
depression.model:
depmean_j ~ 1@dmean_mu;   # person-level means predicted by stressors
deplnvar_j ~ 1@dvar_mu;    # person-level log variances predicted by stressors
depress ~ 1@depmean_j;   # set intercept equal to person-level latent variable
var(depress) ~ 1@deplnvar_j;   # set intercept equal to person-level latent variable
depmean_j ~~ deplnvar_j;   # correlation between person means and within-person variation
predictor.model:
stress_hiv depmean_j deplnvar_j ~~ stress_hiv depmean_j deplnvar_j;
DEBUG: logvar_truncate = ', minlogvar),
parameters = c(
'rsq_slpl = depslpl_j.totalvar / stresslife.totalvar;
rsq_slps = depslps_j.totalvar / stresssoc.totalvar;',
paste0(paste0('lb', fix2zero, ' = 0; '), paste0('lg', fix2zero, ' = 0; '),
paste0('sb', fix2zero, ' = 0; '), paste0('sg', fix2zero, ' = 0; '))),
waldtest = c(
paste0('lb', par2test, ' = 0; '), paste0('sb', par2test, ' = 0; '),
paste0('lg', par2test, ' = 0; '), paste0('sg', par2test, ' = 0; ')),
seed = 90291,
burn = mcmc_burn,
iter = mcmc_iter,
print_output = 'all')
}
# run models
minlogvar <- -3
Mod1 <- runBlimp(dat = ATN, clusterid = 'person', mcmc_burn = 10000, mcmc_iter = 20000, minlogvar = minlogvar, fix2zero = c(1,3,4,5), par2test = c(2))
# FCS for Paired-Samples Test
library(fdir)
library(mitml)
##################################################
# read imputed data
##################################################
# set working directory
set()
# read imputed data from working directory
imps <- read.table("./imps/imps.dat")
names(imps) <- c("imputation", "condition", "id", "male", "frlunch", "lowach", "stanread", "efficacy", "anxiety", "mathpre", "mathpost")
# compute change score from imputed data
imps$change <- imps$mathpost - imps$mathpre
# analysis and pooling
implist <- as.mitml.list(split(imps, imps$imputation))
# analysis and pooling
implist <- as.mitml.list(split(imps, imps$imputation))
lapply(1:20,FUN = mean, implist)
set()
# read imputed data from working directory
imps <- read.table("./imps/imps.dat")
names(imps) <- c("imputation", "condition", "id", "male", "frlunch", "lowach", "stanread", "efficacy", "anxiety", "mathpre", "mathpost")
# compute change score from imputed data
imps$change <- imps$mathpost - imps$mathpre
# analysis and pooling
implist <- as.mitml.list(split(imps, imps$imputation))
# analysis and pooling
implist <- as.mitml.list(split(imps, imps$imputation))
lapply(implist,mean)
fit <- with(implist, lm(change ~ 1))
summary(fit)
fit[[1]]$coefficients
fit <- with(implist, summary(lm(change ~ 1)))
fit[[1]]$coefficients
unlist(fit)
new.fit <- unlist(fit,recursive=FALSE)
new.fit
new.fit$1.coefficients
new.fit$coefficients
new.fit$1.coefficients
results <- NULL
for(i in 1:20){
results <- rbind(results,fit[[i]]$coefficients)
}
results
cbind(results,results[,2]^2)
rep(c,1,2,3),5)
rep(c(1,2,3),5)
nom <- rep(c(1,2,3),5)
psych::dummy.code(nom)
dum <- psych::dummy.code(nom)
nom <- rep(c(1,2,3),100000)
dum <- psych::dummy.code(nom)
cov(dum[,2],dum[,3])
nom <- rep(c(1,2,3),10000000)
dum <- psych::dummy.code(nom)
nom <- rep(c(1,2,3),100000)
dum <- psych::dummy.code(nom)
cov(dum)
nom <- rep(c(1,2,3),1000000)
dum <- psych::dummy.code(nom)
cov(dum)
nom <- rep(c(1,2,3),130)
dum <- psych::dummy.code(nom)
cov(dum)
nom <- rep(c(1,2,3),130)
dum <- psych::dummy.code(nom)
cov(dum)
nom <- c(rep(c(1,2,3),90),rep(c(1,2),40))
dum <- psych::dummy.code(nom)
cov(dum)
estimates <- testEstimates(fit, extra.pars = T, df.com = 249)
# FCS for Paired-Samples Test
library(fdir)
library(mitml)
##################################################
# read imputed data
##################################################
# set working directory
set()
# read imputed data from working directory
imps <- read.table("./imps/imps.dat")
names(imps) <- c("imputation", "condition", "id", "male", "frlunch", "lowach", "stanread", "efficacy", "anxiety", "mathpre", "mathpost")
# compute change score from imputed data
imps$change <- imps$mathpost - imps$mathpre
##################################################
# analysis and pooling
##################################################
# analysis and pooling
implist <- as.mitml.list(split(imps, imps$imputation))
# significance tests with barnard & rubin degrees of freedom
estimates <- testEstimates(fit, extra.pars = T, df.com = 249)
# FCS for Paired-Samples Test
library(fdir)
library(mitml)
##################################################
# read imputed data
##################################################
# set working directory
set()
# read imputed data from working directory
imps <- read.table("./imps/imps.dat")
names(imps) <- c("imputation", "condition", "id", "male", "frlunch", "lowach", "stanread", "efficacy", "anxiety", "mathpre", "mathpost")
# compute change score from imputed data
imps$change <- imps$mathpost - imps$mathpre
implist <- as.mitml.list(split(imps, imps$imputation))
fit <- with(implist, summary(lm(change ~ 1)))
estimates <- testEstimates(fit, extra.pars = T, df.com = 249)
# significance tests with barnard & rubin degrees of freedom
estimates <- testEstimates(fit, extra.pars = T, df.com = 249)
View(imps)
